package dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import modelo.Jogador;
import modelo.Equipe;

import conexao.ConnectionManager;

public class JogadorDaoImp extends GenericHibernateDao<Jogador> implements JogadorDAO{
	private EntityManager manager;
	
	public JogadorDaoImp(){
		manager = ConnectionManager.getEntityManager();
	}

	@Override
	public Jogador buscarPorId(long id) {
		return manager.find(Jogador.class, id);
	}

	@Override
	public List<Jogador> buscarTodos() {
		Query query = manager.createNamedQuery("Jogador.buscarTodos");
		List<Jogador> jogadores = query.getResultList();
		return jogadores;
	}

	@Override
	public List<Jogador> buscarPorEquipe(Equipe equipe) {
		Query query = manager.createNamedQuery("Jogador.buscarPorEquipe");
		query.setParameter("equipe", equipe);
		List<Jogador> jogadores = query.getResultList();
		return jogadores;
	}
	
	@Override
	public List<Jogador> buscarPorNome(String nome) {
		Query query = manager.createNamedQuery("Jogador.buscarPorNome");
		query.setParameter("nome", "%" + nome + "%");
		List<Jogador> jogadores = query.getResultList();
		return jogadores;
	}

	@Override
	public List<Jogador> buscarPorPosicao(String posicao) {
		Query query = manager.createNamedQuery("Jogador.buscarPorPosicao");
		query.setParameter("posicao", "%" +posicao + "%");
		List<Jogador> jogadores = query.getResultList();
		return jogadores;
	}

	@Override
	public List<Jogador> buscarPorNumero(Integer numero) {
		Query query = manager.createNamedQuery("Jogador.buscarPorNumero");
		query.setParameter("numero", numero);
		List<Jogador> jogadores = query.getResultList();
		return jogadores;
	}

		
}
